#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MaxSize 100
struct SNode {
    char Data[MaxSize];
    int Top;
};
typedef struct SNode *Stack;
void pop(Stack S,char &e);
void push(Stack S,char str[]);
int main()
{
	char str[MaxSize],e;
	int i=0;
	gets(str);
	Stack S;
	S=new SNode;
	S->Top=-1;
	push(S,str);
	while(i<S->Top){
		pop(S,e);
		if(S->Data[i]!=e) break;
		i++; 
	}
	if(i<S->Top) printf("no");
	else printf("yes");
}
void push(Stack S,char str[]){
	int i=0;
	while(str[i]){
		S->Top++;
		S->Data[S->Top]=str[i];
		i++;
	}
}
void pop(Stack S,char &e){
	e=S->Data[S->Top];
	S->Top--;
}

